Compiler

Compiler
Com|pi|ler 〈[-p-] m. 3; EDVProgramm, das eine Programmiersprache in eine andere, meist niedrigere, maschinenorientierte Sprache übersetzt; Sy Übersetzer (3) [zu engl. compile „zusammenstellen“]

* * *

Com|pi|ler [kɔm'pa̮ilɐ ], der; -s, - [engl. compiler, zu: to compile = zusammenstellen < frz. compiler < lat. compilare, kompilieren] (EDV):
Programm (4), das dazu dient, eine andere Programmiersprache in die Programmiersprache eines bestimmten Computers zu übersetzen.

* * *

Compiler
 
[dt. »Bearbeiter«, »Verfasser«], ein Übersetzungsprogramm, das Programmtext (Quellcode) in Maschinensprache umwandelt (»kompiliert«). Bei der Übersetzung erzeugt der Compiler den sog. Objektcode. Wenn dieser noch mithilfe eines Binders (Linkers) mit den vom Programm angeforderten Bibliotheken verbunden ist, liegt ein ablauffähiges Programm vor. Zu dessen Ausführung ist der Compiler dann nicht mehr nötig. Im Gegensatz zu einem Interpreter übersetzt ein Compiler den gesamten Quellcode einmal und dauerhaft, bevor das Programm ausgeführt werden kann. Ein Nachteil eines Compilers gegenüber einem Interpreter besteht darin, dass vergleichsweise viel Zeit verstreicht, bis ein Programm anläuft - was vor allem dann ärgerlich sein kann, wenn der Programmierer nur eine kleine Änderung in einem korrekten Programm vornimmt. Mit den schnellen heutigen PCs dauert eine Kompilation gewöhnlich aber nicht länger als einige Sekunden. Der große Vorteil eines Compilers im Vergleich zu einem Interpreter liegt darin, dass ein kompiliertes Programm sehr viel schneller ausgeführt wird als ein interpretiertes. Daher ist heute für die meisten Programmiersprachen ein Compiler vorgesehen (Compiler-Sprache).
 
Die Tätigkeit eines Compilers gliedert sich im Wesentlichen in vier Phasen:
 
- Bei der lexikalischen Analyse wird das Quellprogramm in eine Folge von Symbolen der Quellsprache aufgelöst, die als Token bezeichnet werden.
 
- Bei der syntaktischen Analyse erzeugt ein sog. Parser einen der Syntax der Quellsprache entsprechenden Ableitungs- oder Strukturbaum, wobei das Quellprogramm auf syntaktische Korrektheit überprüft wird. Eventuelle Fehler werden angezeigt und führen bei bestimmter Schwere zum Abbruch des Übersetzungsvorgangs.
 
- Die semantische Analyse prüft, ob die verwendeten Programmelemente logisch einwandfrei in den Kontext passen (z. B. ob Variablen entsprechend der Typvereinbarung verwendet werden). Außerdem bereitet sie die Codeerzeugung vor, wozu meist die Erstellung und Abspeicherung einer Symboltabelle gehört. Dies ist in der Regel eine sortierte Liste, in der u. a. alle Variablen mit ihrem Datentyp und ihrer Adresse, die sie im späteren, übersetzten Programm erhalten, verzeichnet sind.
 
- Bei der Codegenerierung werden schließlich die Symbole der Quellsprache in die entsprechenden Symbole der Maschinensprache übersetzt. Dabei kann eine Anweisung des Quellcodes zu einigen Hundert Maschinenbefehlen führen.
 
Oft schließen sich an diese Phasen eine oder mehrere Optimierungsphasen an (bei sog. optimierenden Compilern), welche die Verkürzung des Objektcodes zum Ziel haben.
 
Die Kompilation kann für manche Programmiersprachen in einem einzigen Arbeitsgang erfolgen (Einschritt-Compiler), oft sind aber mehrere Durchläufe nötig oder sinnvoll, bei denen das jeweilige Zwischenergebnis in einem eigenständigen Zwischensprachentext repräsentiert ist, z. B. wenn globale Optimierungen vorgenommen werden sollen, oder wenn die Programmiersprache die Verwendung von Variablen vor ihrer Definition erlaubt.
 
Spezielle Compiler-Formen sind z. B. der inkrementelle Compiler und der Cross Compiler. Auch gibt es Mischformen (Hybride) zwischen Compilern und Interpretern, sog. Compreter. Die Umkehrung einer Kompilation bewerkstelligt ein Recompiler. Ein Compiler ist wesentlich umfangreicher als ein Assembler.

* * *

Com|pi|ler [kɔm'pailɐ], der; -s, - [engl. compiler, zu: to compile = zusammenstellen < frz. compiler < lat. compilare, ↑kompilieren] (EDV): Programm (4), das dazu dient, eine andere Programmiersprache in die Programmiersprache eines bestimmten Computers zu übersetzen.

Universal-Lexikon. 2012.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • compiler — [ kɔ̃pile ] v. tr. <conjug. : 1> • 1190; lat. compilare, de pilare « piller » 1 ♦ Didact. Mettre ensemble (des extraits, des documents) pour former un recueil. Compiler des documents. 2 ♦ Péj. Plagier. 3 ♦ Anglic. Inform. Traduire (un… …   Encyclopédie Universelle

  • Compiler — コンパイラ (Compáira) Género Ciencia Ficción, Comedia, Seinen Manga Creado por Kia Asamiya …   Wikipedia Español

  • compiler — com‧pil‧er [kəmˈpaɪlə ǁ ər] noun [countable] 1. a person who collects information together and writes it into a list, report, book etc 2. COMPUTING a computer program or piece of software that changes another program from its existing format into …   Financial and business terms

  • Compiler — Com*pil er (k[o^]m*p[imac]l [ e]r), n. [OE. compiluor; cf. OF. compileor, fr. L. compilator.] 1. One who compiles; esp., one who makes books by compilation. [1913 Webster] 2. (Computers) a computer program that decodes instructions written in a… …   The Collaborative International Dictionary of English

  • compiler — index author (writer) Burton s Legal Thesaurus. William C. Burton. 2006 …   Law dictionary

  • compiler — COMPILER.v. actif. Faire un recueil, un amas de diverses choses qu on a lues dans les Auteurs. Il a compilé ce qu il a trouvé de meilleur dans les Auteurs sur une telle matière, il en a fait un livre. Compilé, ée. participe …   Dictionnaire de l'Académie Française 1798

  • compiler — early 14c., from Anglo Fr. compilour, O.Fr. compileur author, chronicler, from L. compilatorem, agent noun from compilare (see COMPILE (Cf. compile)). Another form of the word current in early Modern English was compilator, directly from the… …   Etymology dictionary

  • compiler — m DEFINICIJA v. kompajler …   Hrvatski jezični portal

  • compiler — Compiler. v. a. Faire un recueil, un amas de plusieurs choses differentes ou de mesme nature, & en composer un corps d ouvrage. Il a compilé ce qu il a trouvé de meilleur dans tous les Autheurs, sur une telle matiere, & il en a fait un livre …   Dictionnaire de l'Académie française

  • compiler — ► NOUN 1) a person who compiles information. 2) a computer program that translates instructions from a high level language into a machine code or lower level form which can be executed by the computer …   English terms dictionary

  • compiler — [kəmpīl′ər] n. a person or thing that compiles; specif., a computer program that translates instructions, other programs, etc. in a high level language into a machine language …   English World dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”